Bundle generation

ABSTRACT

First topics related to a content page, such as a web page, are identified. Thereafter, second topics related to a first content element, such as advertisements, and a second content element, such as media files, are identified based on the first topics. Common topics are identified that are common to the first and second topics. Based on the common topics, first and second content elements are identified and combined in a bundle that is transmitted to a user requesting the content page.

FIELD OF THE INVENTION

The systems and methods described herein generally relate to advertising systems.

BACKGROUND

Content for a web page or other entity can include media files that are related to the content of the web page. The content can be included in a content page, such as the web page, that is delivered to a user through a browser. This content is typically manually selected by a publisher of a web page and embedded into the web page. The content that the publishers typically embed can have associated advertising. However, if advertisements are included, the advertisements targeted or sold may not relate to the content on the publisher's site, as manually selecting media to display on a publisher's web page does not ensure that the publisher's web page displays the media that is best targeted to the publisher's audience.

SUMMARY

Disclosed herein are systems and methods for generating optimal content to be displayed to a user requesting the content through, for example, a browser. In one implementation, a content page, e.g., a web page, can be analyzed to determine first topics related to the subject matter of the content page. Second topics can be identified from first content elements, e.g. advertisements, and second content elements, e.g. media files. The first topics and second topics can be analyzed to determine common topics. Content from the first and second content elements can be identified based on the common topics. A bundle can be generated from the identified content and transmitted to a publisher. The publisher can embed the bundle within the content page.

In another implementation, the bundle can be monitored to evaluate the performance according to one or more parameters. If the bundle does not meet parameter thresholds, the bundle elements that do not meet the parameter thresholds can be removed and replaced with additional content from the first and second content elements.

In another implementation, a bundle analysis engine can be configured to identify first topics related to a content page and identify second topics related to first content elements and second content elements. The bundle analysis engine can also identify common topics among the first topics and the second topics. A bundler can be configured to generate a bundle from the first content elements and the second content elements based on the common topics identified by the bundle analysis engine. A monitoring engine can be configured to monitor a performance of the bundle of first content elements and second content elements.

In one implementation, first topics related to one or more advertisements can be identified. Second topics can be identified related to a content page and one or more media files, wherein the media files are selected by a publisher of the content page. Common topics common to the first topics and second topics can be identified. One or more advertisements can be selected to combine in a bundle with the one or more selected media files based on the common topics. A bundle can be generated from the one or more advertisements and selected media files and transmitted to a publisher. The publisher can embed the bundle within the content page.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIGS. 1A and 1B are block diagrams of an example bundle generator system.

FIG. 1C is a block diagram of an example bundle of first content elements and second content elements.

FIGS. 1D and 1E are block diagrams of another example bundle generator system.

FIG. 2 is a flow diagram of an example process for generating a bundle of content from first content elements and second content elements.

FIG. 3 is flow diagram of an example process for identifying a set of topics from first content elements and second content elements.

FIG. 4 is a flow diagram of another example process for generating a bundle of first content elements and second content elements.

FIG. 5 is a flow diagram of an example process for evaluating first content elements and second content elements.

FIG. 6 is a flow diagram of an example process for monitoring the performance of a bundle of first content elements and second content elements.

FIG. 7 is a flow diagram of an example process for adjusting a first bundle of first content elements and second content elements to generate a second bundle of first content elements and second content elements.

FIG. 8 is a flow diagram of an example process for generating a bundle of content from advertisements and selected media files.

FIG. 9 is block diagram of an example computer system.

DETAILED DESCRIPTION

FIGS. 1A and 1B are block diagrams of an example bundle generator system 100. A bundle analysis engine 110 can identify first topics 107 related to a content page 105, e.g. using a topics engine 125. The content page 105 can be a web page that publishes a variety of different content, e.g. video, audio, text, advertisements, news feeds, digital print, images, etc.

In one implementation, the first topics 107 of the content page 105 can be identified by analyzing signals from a content source associated with the content page 105. For example, the signals can be keywords that are related to the content page 105 and that are identified by the topics engine 125 of the bundle analysis engine 110. The topics engine 125 can crawl, i.e., scan, the content page 105 and determine keywords that are related to the content page 105. After identifying the keywords related to the content page 105, the topics engine 125 of the bundle analysis engine 110 can rank the identified keywords to generate the first topics 107. Other signals can be identified from a content source associated with the content page 105.

For example, the content page 105 can be a web page that is related to sports in general, but primarily relates to baseball, and which sells baseball equipment. After analyzing the web page, the topics engine 125 can identify the keywords of the content page 105 as sports, baseball, and baseball equipment. Subsequently, the topics engine 125 can rank the keywords to determine which keywords are the most relevant to the web page. For example, this list can include baseball equipment, baseball, and sports. The list can represent the first topics 107.

In another implementation, the first topics 107 of the content page 105 can be identified by receiving one or more of the first topics 107 from a content source associated with the content page 105. For example, a publisher of the content page 105 can supply topics to the bundle analysis engine 110 based on the publisher's analysis of what are the most relevant topics of the content page 105. In this implementation, the bundle analysis engine 110 can use the publisher's recommendations as the first topics 107.

The bundle analysis engine 110 can identify second topics 109 related to first content elements 115 and second content elements 120. The first content elements 115 can include advertisement content, and the advertisement content can come from one or more advertisement content sources. The second content elements 120 can include media content, e.g. video files, audio files, etc, and the media content can come from one or more media content sources. In one implementation, the first content elements 115 can also include advertisements in the form of media files, such as video files.

In one implementation, the second topics 109 related to the first content elements 115 and the second content elements 120 can be identified by analyzing signals from the first content elements 115 and the second content elements 120. For example, the signals can be keywords that are related to the first content elements 115 and the second content elements 120. These keywords can be identified by the topics engine 125 of the bundle analysis engine 110.

For example, the topics engine 125 can identify one or more keywords related to the first content elements 115, and can rank these keywords to produce a set of third topics 117. The first content elements 115 can, for example, include advertisements related to a variety of different topics.

The topics engine 125 can also identify one or more keywords related to the second content elements 120. The second content elements 120 can include media content, e.g. video files, audio files, etc., related to a variety of different topics, and the topics engine 125 can identify keywords from this media content, and can rank these keywords to produce a set of fourth topics 122.

Other signals can also be analyzed related to the first content elements 115 and the second content elements 120. For example, the first content elements 115 and the second content elements 120 can include media files, such as video files. In one implementation, the analyzed signals can include keywords associated with the media file. For example, the keywords can include the title, description, metadata, and comments associated with the media file. The keyword can also include web page anchor text that directs a user to the media file, and search query logs or click logs that keep track of how users are directed to a particular advertisement and which other advertisements they may interact with.

In another implementation, additional signals related to the media files can be analyzed. For example, speech-to-text technology can be utilized to determine particular keywords related to the media files by converting the audio signal to text signals. Media file metric data can also be analyzed and can include data regarding the presentation of the media file, such as the play and pause time; whether the media file had been fast-forward, rewound, and/or skipped; stop events, the duration of the media file that was viewed and/or listened to; the number of media files, including videos and/or advertisements watched in a bundle, and click-throughs. In another implementation, video content analysis data, such as face detection, object detection, and/or color histogram, can also be analyzed.

Additional signals can include data related to the users who interact with the media files. For example, these signals can include demographic information regarding the users. The signals can also include information about other media files that a particular user has interacted.

Based on the analyzed signals, the topics engine 125 can derive a set of second topics 109 based on the third topics 117 from the first content elements 115 and the fourth topics 122 from the second content elements 120.

In another implementation, the second topics 109 related to the first content elements 115 and the second content elements 120 can be identified based on the first topics 107 related to the content page 105. For example, the topics engine 125 can identify one or more keywords related to the first content elements 115 based on the first topics 107 from the content page 105. The topics engine 125 can also rank these keywords to produce a set of third topics 117. The topics engine 125 can also identify one or more keywords related to the second content elements 120 based on the first topics 107 from the content page 105, and can also rank these keywords to produce a set of fourth topics 122.

The topics engine 125 of the bundle analysis engine 110 can identify common topics that are common to the first topics 107 and the second topics 109. In one implementation, the topics engine 125 can identify the common topics by combining the rankings from the first topics 107 and the second topics 109 to determine the most common topics.

For example, the first topics 107 from the content page 105, such as a web page, can include baseball equipment, baseball, and sports. Additionally, the second topics 109 from the first content elements 115 and the second content elements 120 can include football, basketball, soccer, baseball, sporting equipment, and baseball instructional videos. From these two sets of topics, the topics engine 125 can determine that the common topics common to the first topics 107 and the second topics 109 are baseball, sporting equipment, and baseball instructional videos. For example, the topics engine 125 can identify that the topic of “baseball” is common among the topics of baseball, sporting equipment, e.g., baseball equipment can be a subset of the topic of sporting equipment, and baseball instructional videos.

After identifying the common topics, the bundle analysis engine 110 can generate a bundle from the first content elements 115 and second content elements 120 based on the common topics. The common topics can be ranked to determine which topics are the most relevant between the content page 105, first content elements 115, and the second content elements 120. To generate a bundle, the bundle analysis engine 110 can identify first content elements 115 and second content elements 120 based on the common topics.

For example, the common topics can be baseball, sporting equipment, and instructional videos. The topics engine 125 can rank these common topics and determine that the ranked order of the most common topics can be sporting equipment, baseball, and instructional videos. The bundle analysis engine 110 can use the ranked order of most common topics to identify first content elements 115 and second content elements 120 to utilize in the bundle 140.

In one implementation, the bundle analysis engine can identify first content elements 115 and second content elements 120 based on the common topics. Therefore, the bundle analysis engine 110 can search the first content elements 115 and the second content elements 120 and select content from the first content elements 115 and the second content elements 120 to utilize in the bundle. For example, in the first content elements 115, the bundle analysis engine 110 can identify advertisements related to a sporting goods store, baseball paraphernalia, ticket agencies selling tickets to baseball games, etc. Furthermore, in the second content elements 120, the bundle analysis engine 110 can identify media content such as baseball highlights, instructional videos teaching baseball skills, podcasts providing baseball commentary, etc. The bundle analysis engine 110 can send the identified content to the bundler 130 to generate a bundle 140.

In another implementation, the bundle analysis engine 110 can identify first content elements 115 and second content elements 120 by evaluating the identified first content elements 115 and second content elements 120 according to one or more performance parameters. Evaluating the identified first content elements 115 and second content elements 120 according to one or more performance parameters can allow the bundle analysis engine 110 to generate a bundle 140 that is optimized for a higher performance with regards to, for example, monetization and relevance.

The bundle analysis engine 110 can search the first content elements 115 and the second content elements 120 and select elements from both the first content elements 115 and the second content elements 120 based on the common topics. In the example above, the bundle analysis engine 110 can identify advertisements related to a sporting goods store, baseball paraphernalia, and ticket agencies selling tickets to baseball games from the first content elements 115 and the bundle analysis engine 110 can identify media content such as baseball highlights, instructional videos teaching baseball skills, and podcasts providing baseball commentary from the second content elements 120. The bundle analysis engine 110 can evaluate each identified content element from both the first content elements 115 and the second content elements 120 according to one or more performance parameters.

For example, the identified content elements can be monitored with respect to a click-through rate; a click-to-play rate; an aggregate cost; and/or a consumption. In another implementation, the identified content elements can be evaluated by monitoring the past performance of the elements according to the one or more performance parameters. In another implementation, the identified content elements can be evaluated by monitoring the performance of the elements relative to other content pages 105, e.g. web pages, in a similar genre or category. Other performance parameters can be used to monitor the performance of the first content elements 115 and the second content elements 120.

Based on the measured values of the one or more performance parameters, the bundle analysis engine 110 can select first content elements 115 and the second content elements 120 that can be combined in a bundle 140 that is optimized for a higher performance with regards to, for example, monetization and relevance. For example, the bundle analysis engine 110 can determine the total number of first content elements 115 and the second content elements 120 to include in the bundle 140. Furthermore, the bundle analysis engine 110 can determine the optimal number of first content elements 115 to show in combination with the second content elements 120, and in what sequence these elements will be shown.

The bundler 130 can combine the first content elements 115 and the second content elements 120 that were identified by the bundle analysis engine 110 into a bundle 140. The bundle 140 can be transmitted to a user requesting the content page 105. For example, the bundle analysis engine 110 can determine that the best combination of first content elements 115 and second content elements 120 would be a bundle 140 that includes advertisements for a sporting goods store that sells baseball equipment along with instructional videos teaching how to hit a baseball.

Additional first content elements 115 and second content elements 120 could also be included in the bundle 140 that is created by the bundler 130. After the bundler 130 has created the bundle 140, the bundle 140 can be transmitted to a publisher of the content page, such as a web page. The publisher can embed the bundle within the web page, and the bundle can be displayed to a user who has requested the web page.

In another implementation, the performance of a first bundle of first content elements 115, e.g., advertisements, and second content elements 120, e.g. media files, can be monitored by a monitoring engine 135 at a content page 105. The performance of the first bundle can be monitored with a monitoring engine 135 by evaluating the first bundle of advertisements and media files according to one or more performance parameters. If the monitored performance of the first bundle is less than a threshold, the bundle analysis engine 110 can generate a second bundle of advertisements and media files. Other performance parameters can be used to monitor the performance of a first bundle of first content elements 115 and the second content elements 120 by the monitoring engine 135.

For example, the performance of a first bundle can be monitored with respect to an aggregate click-through rate, a click-to-play rate, an aggregate cost, and a consumption. The monitoring engine 135 can determine whether the values of the one or more measured performance parameters meet a threshold. In response to determining that the values of the one or more measured performance parameters do not meet the threshold, the bundle analysis engine 110 can generate a second bundle of advertisements and media files.

In one implementation, after determining that the values of the one or more measured performance parameters do not meet the threshold, the bundle analysis engine 110 can generate a second bundle by repeating the process used to create the first bundle. For example, the bundle analysis engine 110 could identify a set of first topics 107 related to the content page 105 and can also identify a set of second topics 109 related to the first content elements 115 and second content elements 120 based on the first topics 107. The bundle analysis engine can also identify a set of common topics that were common to the first topics 107 and the second topics 109, and generate a second bundle from first content elements 115 and second content elements 120 based on the common topics. In some implementations, bundle elements can be substituted over time. The performance of the new bundle configuration can be measured and compared to previous bundle configurations. An optimal configuration can be derived over time.

In another implementation, the bundle analysis engine 110 can adjust the first bundle of advertisements and media files in response to the monitoring engine 135 determining that the values of the one or more measured performance parameters do not meet a threshold. For example, bundle analysis engine 110 can remove the advertisements and/or media files from the first bundle that do not meet the threshold values. The bundle analysis engine 110 can identify additional advertisements from the first content elements 115 and/or media files from the second content elements 120 that would be relevant to replace the removed elements. The bundle analysis engine 110 could transmit these additional elements to the bundler 130 that could combine the additional advertisements and/or media files into a second bundle with the remaining advertisements and/or media files from the first bundle.

For example, the performance of the bundle can be monitored with respect to an aggregate click-through rate. The aggregate click-through rate can represent the number of times the first bundle was selected by a user viewing the first bundle in a ratio to the number of times it was displayed. Therefore, if the aggregate click-through rate of the first bundle is low, the monitoring engine 135 can analyze the advertisements and/or media files from the first bundle to determine which elements are performing below a threshold with respect to the click-through rate. Based on the analysis, the bundle analysis engine 110 can decide to replace any and/or all of the advertisements and/or media files from the first bundle with additional advertisements and/or media files into a second bundle with the goal of improving the aggregate click-through rate of the bundle.

FIG. 1C is a block diagram of an example bundle of first content elements and second content elements. The bundle 140 can include first content elements 145, e.g. ads, that are identified by the bundle analysis engine 110 from the first content elements 115. The bundle 140 can also include second content elements 150, e.g. media, that are identified by the bundle analysis engine 110 from the second content elements 120. The bundle 140 can also include topics 155 which can include common topics common to the content page 105, first content elements 115, and the second content elements 120. The topics 155 in the bundle 140 can be identified by the topics engine 125. The bundle 140 can also include performance parameter data 160 which can include performance parameter data associated with the identified first content elements 145 and second content elements 150 of the bundle 140.

In one implementation, the bundle 140 can be stored at a web page associated with the content page 105. For example, the bundle 140 can be transmitted by the bundle generator system 100 to a publisher of the content page 105, such as a web page. The publisher can embed the bundle 140 within the web page, and the bundle 140 can be displayed to a user who has requested the web page.

In another implementation, the bundle 140 can be stored at the bundle generator system 100. For example, the bundle 140 can be generated and stored by the bundle generator system 100. Selected content of the bundle 140 can then be transmitted to a user requesting the content page 105.

In another implementation, portions of the bundle 140 can be stored at the content page 105 and other portions of the bundle 140 can be stored at the bundle generator system 100. For example, the first content elements 145 and the second content elements 150 can be transmitted to a publisher of the content page 105, such as a web page, and the publisher can embed the first content elements 145 and the second content elements 150 of the bundle 140 within the web page. Furthermore, the topics 155 and the performance parameter data 160 can be stored at the bundle generator system 100. For example, the bundle generator system 100 can store the topics 155 and the performance parameter data 160 to facilitate the monitoring of the first content elements 145 and the second content elements 150 of the bundle 140.

The bundle 140 can, for example, be displayed to a user in a media player. In one implementation, the media player can display one of the identified second content elements 150, i.e., video files, of the bundle 140 in a main window of the video player. Furthermore, thumbnails of other video files and/or identified first content elements 145, i.e., advertisements, can, for example, be displayed on a side and/or bottom panel of the media player. The thumbnails can, for example, allow a user to select a different content element to be displayed in the media player. In another implementation, a media player can display a sequence of content elements, i.e., a play list, that includes one or more identified first content elements 145 and second content elements 150.

FIGS. 1D and 1E are block diagrams of another example bundle generator system 150. In the example bundle generator system 150, a publisher of a content page 105 can select one or more media files 155 to display on the content page 105. In response, the example bundle generator system 150 can identify relevant advertisements 160 to display in conjunction with the one or more selected media files 155 in a bundle 140.

A bundle analysis engine 110 can identify first topics 180 related to one or more advertisements 160. In one implementation, the first topics 180 related to the one or more advertisements 160 can be identified by analyzing signals from the one or more advertisements 160. For example, the signals discussed with respect to the first content elements 115 as identified with respect to FIGS. 1A and 1B can be utilized with respect to FIGS. 1D and 1E for the one or more advertisements 160. For example, the signals can be keywords that are related to the advertisements 160. These keywords can be identified by the topics engine 125 of the bundle analysis engine 110. For example, the topics engine 125 can identify one or more keywords related to the one or more advertisements 160, and can rank these keywords to produce the set of fourth topics 180.

The bundle analysis engine 110 can also identify third topics 165 related to a content page 105, e.g. using a topics engine 125. The content page 105 can be a web page that publishes a variety of different content, e.g. video, audio, text, advertisements, news feeds, digital print, images, etc. In one implementation, the third topics 165 of the content page 105 can be identified by analyzing signals from a content source associated with the content page 105. For example, the signals discussed with respect to the content page 105 as identified with respect to FIGS. 1A and 1B can be utilized with respect to FIGS. 1D and 1E for the content page 105.

The bundle analysis engine 110 can also identify fourth topics 170 related to selected media files 155. For example, the publisher of the content page 105 can select one or more media files 155 to be displayed on the content page 105. In one implementation, the publisher can select a list of particular media files 155 to be displayed. In another implementation, the publisher can, for example, select media files 155 that are associated with a particular provider, genre, keyword, etc.

In one implementation, the fourth topics 170 related to the selected media files 155 can be identified by analyzing signals from the selected media files 155. For example, the signals discussed with respect to the second content elements 120 as identified with respect to FIGS. 1A and 1B can also be utilized with respect to FIGS. 1D and 1E for the selected media files 155.

Based on the analyzed signals, the topics engine 125 can derive a set of second topics 175 based on the third topics 165 from the content page 105 and the fourth topics 170 from the selected media files 155. For example, the topics engine 125 can rank keywords associated with the content page 105 to produce the set of third topics 165, and can rank keywords associated with the selected media files 155 to produce the set of fourth topics 170. The set of second topics 175 can then, for example, be derived based on the combined rankings.

The topics engine 125 of the bundle analysis engine 110 can then, for example, identify common topics that are common to the first topics 180 and the second topics 175. In one implementation, the topics engine 125 can identify the common topics by combining the rankings from the first topics 180 and the second topics 175 to determine the most common topics.

In one implementation, the bundle analysis engine 110 can identify advertisements 160 based on the common topics. Therefore, the bundle analysis engine 110 can select one or more advertisements 160 to combine in a bundle 140 with the one or more selected media files 155 based on the common topics. For example, after selecting one or more advertisements 160, the bundle analysis engine 110 can send the identified advertisements 160 along with the publisher selected media files 155 to the bundler 130 to generate a bundle 140.

In another implementation, the bundle analysis engine 110 can identify advertisements 160 by evaluating the advertisements 160 according to one or more performance parameters. Evaluating the advertisements 160 according to one or more performance parameters can allow the bundle analysis engine 110 to generate a bundle 140 that is optimized for a higher performance with regards to monetization and relevance.

Based on the evaluation of the advertisements 160 with respect to one or more performance parameters, the bundle analysis engine 110 can select advertisements 160 that can be combined in a bundle 140 with the selected media files 155 that is optimized for a higher performance with regards to monetization and relevance. The bundler 130 can combine the advertisements 160 with the selected media files 155 into a bundle 140. The bundle 140 can be transmitted to a user requesting the content page 105.

Additional media files 155 and advertisements 160 can also be included in the bundle 140 that is created by the bundler 130. After the bundler 130 has created the bundle 140, the bundle 140 can be transmitted to a publisher of the content page, such as a web page. The publisher can embed the bundle within the web page, and the bundle can be displayed to a user who has requested the web page.

FIG. 2 is a flow diagram of an example process 200 for generating a bundle of content from first content elements and second content elements. The process 200 can, for example, be implemented in the bundle analysis engine 110. In one implementation, the bundle analysis engine 110 can be integrated into the bundle generator system 100. In another implementation, the bundle analysis engine 110 can be integrated into the content page 105.

Stage 205 identifies first topics related to a content page. The content page 105 can be a web page that publishes a variety of different content, e.g. video, audio, text, advertisements, news feeds, digital print, images, etc. For example, the first topics 107 can be identified with a topics engine 125 that analyzes signals from the web page, wherein the signals can include relevant keywords related to the content on the web page. The identified relevant keywords can be ranked by the topics engine 125 to generate the first topics 107. The first topics 107 can also include one or more items transmitted from a content source associated with the content page 105.

Stage 210 identifies second topics related to the first content elements and second content elements. The first content elements can include advertisement content, and the second content elements can include media content, e.g. video files, audio files, etc. The second topics can be identified by analyzing keywords related to the first content elements and second content elements. These keywords can, for example, be identified by a topics engine 125.

Stage 215 identifies common topics that are common to the first topics and the second topics. For example, the common topics can be identified by the topics engine 125 by combining the rankings from the first topics 107 and the second topics 109.

Stage 220 generates a bundle from the first content elements and second content elements based on the common topics. For example, a bundler 130 can generate the bundle 140 after a bundle analysis engine 110 has identified first content elements 115 and second content elements 120.

Other processes for generating a bundle of content from first content elements and second content elements can also be used.

FIG. 3 is flow diagram of an example process 300 for identifying a set of topics from first content elements and second content elements. The process 300 can, for example, be implemented in the topics engine 125. In one implementation, the topics engine 125 can be integrated into the bundle analysis engine 110. In another implementation, the topics engine 125 can be integrated into the bundle generator system 100. In another implementation, the topics engine 125 can be integrated into the content page 105.

Stage 305 identifies third topics related to the first content elements by analyzing signals from the first content elements. The signals from the first content elements can include relevant keywords related to the content of the first content elements. A topics engine 125 can, for example, analyze the signals from the first content elements. The identified relevant keywords can be ranked by the topics engine 125 to generate the third topics 117.

Stage 310 identifies fourth topics related to the second content elements by analyzing signals from the second content elements. The signals from the second content elements can include relevant keywords related to the content of the second content elements. A topics engine 125 can, for example, analyze the signals from the second content elements. The identified relevant keywords can be ranked by the topics engine 125 to generate the fourth topics 122.

Stage 315 combines the third and fourth topics to generate the second topics. For example, the ranked lists of third and fourth topics 122 can be combined by a topics engine 125 to determine the most relevant topics to the first topics 107 from the content page 105.

Other processes for identifying a set of topics from first content elements and second content elements can also be used.

FIG. 4 is a flow diagram of an example process 400 for generating a bundle of content. The process 400 can, for example, be implemented in the bundle analysis engine 110. In one implementation, the bundle analysis engine 110 can be integrated into the bundle generator system 100. In another implementation, the bundle analysis engine 110 can be integrated into the content page 105.

Stage 405 identifies first content elements and second content elements based on the common topics. For example, the bundle analysis engine 110 can search the first content elements 115 and second content elements 120 and select elements from the first content elements 115 and second content elements 120 to utilize in the bundle 140 that have similar topics as compared to the content page 105.

Stage 410 evaluates first content elements and second content elements according to one or more performance parameters. For example, after identifying the first content elements 115 and second content elements 120, the bundle analysis engine 110 can evaluate the performance of the elements according to performance parameters, such as a click-through rate, a click-to-play rate, an aggregate cost, and a consumption.

Stage 415 monitors the past performance of first content elements and second content elements according to one or more performance parameters. For example, the bundle analysis engine 110 can evaluate the past performance of the elements according to performance parameters, such as a click-through rate, a click-to-play rate, an aggregate cost, and a consumption.

Stage 420 combines first content elements and second content elements in a bundle based on the evaluation of the first content elements and second content elements according to one or more performance parameters. For example, the bundle analysis engine 110 can select first content elements 115 and second content elements 120 that can be combined in a bundle 140 that is optimized for a higher performance with regards to monetization and relevance. For example, the bundle analysis engine 110 can determine the total number of first content elements 115 and second content elements 120 to include in the bundle 140, and the bundle analysis engine 110 can determine the optimal number of first content elements 115, e.g. advertisements, to show in combination with the second content elements 120, e.g. media files, and in what sequence these elements will be shown.

Other processes for generating a bundle of content can also be used.

FIG. 5 is a flow diagram of an example process 500 for evaluating first content elements and second content elements. For example, the performance of the first bundle can be monitored with a monitoring engine 135 by evaluating the first bundle of first content elements 115, e.g. advertisements, and second content elements 120, e.g. media files, according to one or more performance parameters. The process 500 can, for example, be implemented in the monitoring engine 135. In one implementation, the monitoring engine 135 can be integrated into the bundle generator system 100. In another implementation, the monitoring engine 135 can be integrated into the content page 105.

Stage 505 evaluates first content elements and second content elements by monitoring an aggregate click-through rate of first content elements and second content elements. Stage 510 evaluates first content elements and second content elements by monitoring a click-to-play rate of first content elements and second content elements. Stage 515 evaluates first content elements and second content by monitoring an aggregate cost of first content elements and second content elements. Stage 520 evaluates first content elements and second content elements by monitoring a consumption of first content elements and second content elements. A monitoring engine 135 can, for example, be utilized for monitoring first content elements and second content elements with respect to an aggregate click-through rate, a click-to-play rate, an aggregate cost, and/or a consumption.

Other processes for evaluating first content elements and second content elements can also be used.

FIG. 6 is a flow diagram of an example process 600 for monitoring the performance of a bundle of first content elements and second content elements. The process 600 can, for example, be implemented in the monitoring engine 135. In one implementation, the monitoring engine 135 can be integrated into the bundle generator system 100. In another implementation, the monitoring engine 135 can be integrated into the content page 105.

Stage 605 evaluates the performance of the bundle according to one or more performance parameters, such as an aggregate click-through rate, a click-to-play rate, an aggregate cost, and a consumption, and represented in FIG. 5. For example, a monitoring engine 135 can be utilized to measure the performance of the bundle according to one or more performance parameters.

Stage 610 determines whether the values of the one or more performance parameters meet a threshold. The threshold values for the one or more performance parameters can be designated based on the preferences of the content page 105. The measured values of the performance parameters from Stage 605 can be compared to these threshold values.

Stage 615 generates a second bundle of first content elements and second content elements if the values of the one or more performance parameters do not meet a threshold. For example, after comparing the measured values of the performance parameters to the threshold values with a monitoring engine 135, the bundle analysis engine 110 can determine whether a second bundle should be generated that includes elements that meet certain threshold values.

Other processes for monitoring the performance of a bundle of first content elements and second content elements can also be used.

FIG. 7 is a flow diagram of an example process 700 for adjusting a first bundle of first content elements and second content elements to generate a second bundle of first content elements and second content elements. The process 700 can, for example, be implemented in the bundle analysis engine 110. In one implementation, the bundle analysis engine 110 can be integrated into the bundle generator system 100. In another implementation, the bundle analysis engine 110 can be integrated into the content page 105.

As represented in FIG. 6, the first content elements and second content elements are evaluated to determine whether they meet certain threshold values with regards to one or more performance parameters. Stage 705 removes first content elements and second content elements from a first bundle that do not meet a threshold. For example, the bundle analysis engine 110 can remove the first content elements and second content elements from a first bundle based on the evaluation by a monitoring engine 135.

Stage 710 identifies additional first content elements and second content elements. The additional first content elements and second content elements can be identified utilizing the same processes that can be used to initially identify the first content elements and second content elements to include in the first bundle. For example, the additional first content elements 115 and second content elements 120 can be identified with a bundle analysis engine 110.

Stage 715 combines additional first content elements and second content elements into a second bundle. For example, after identifying additional first content elements and second content elements, a bundler 130 can be utilized to combine the additional first content elements and second content elements into a second bundle.

Other processes for adjusting a first bundle of first content elements and second content elements to generate a second bundle of first content elements and second content elements can also be used.

FIG. 8 is a flow diagram of an example process 800 for generating a bundle of content from advertisements and selected media files. The process 200 can, for example, be implemented in the bundle analysis engine 110. In one implementation, the bundle analysis engine 110 can be integrated into the bundle generator system 100. In another implementation, the bundle analysis engine 110 can be integrated into the content page 105.

Stage 805 identifies first topics related to one or more advertisements. For example, the first topics 107 can be identified with a topics engine 125 that analyzes signals from the one or more advertisements 160, wherein the signals can include relevant keywords related to the advertisements. The identified relevant keywords can be ranked by the topics engine 125 to generate the first topics 180. The first topics 180 can also include one or more items transmitted from a publisher associated with the advertisements 160.

Stage 810 identifies second topics related to a content page and one or more media files, wherein the media files are selected by a publisher of the content page. The content page 105 can be a web page that publishes a variety of different content, e.g. video, audio, text, advertisements, news feeds, digital print, images, etc. The media files 155 can be selected by the publisher of the content page 105 to be displayed on the content page 105. In one implementation, the publisher can select a list of particular media files 155 to be displayed. In another implementation, the publisher can, for example, select media files 155 that are associated with a particular provider, genre, keyword, etc.

Stage 815 identifies common topics that are common to the first topics and the second topics. For example, the common topics can be identified by the topics engine 125 by combining the rankings from the first topics 180 and the second topics 175.

Stage 820 selects one or more advertisements to combine in a bundle with the one or more selected media files based on the common topics. For example, a bundler 130 can generate the bundle 140 after a bundle analysis engine 110 has selected the one or more advertisements 160 to combine with the selected media files 155.

Other processes for generating a bundle of content from first content elements and second content elements can also be used.

FIG. 9 is block diagram of an example computer system 900. The example computer system 900 can be utilized to implement a server computer device and/or a client computer device, or some other computer device. In one implementation, the example computer system 900 can be utilized to implement the content page 105 and bundle generator system 100 of FIGS. 1A and 1C.

The system 900 includes a processor 910, a memory 920, a storage device 930, and an input/output device 940. Each of the components 910, 920, 930, and 940 can, for example, be interconnected using a system bus 950. The processor 910 is capable of processing instructions for execution within the system 900. In one implementation, the processor 910 is a single-threaded processor. In another implementation, the processor 910 is a multi-threaded processor. The processor 910 is capable of processing instructions stored in the memory 920 or on the storage device 930.

The memory 920 stores information within the system 900. In one implementation, the memory 920 is a computer-readable medium. In one implementation, the memory 920 is a volatile memory unit. In another implementation, the memory 920 is a non-volatile memory unit.

The storage device 930 is capable of providing mass storage for the system 900. In one implementation, the storage device 930 is a computer-readable medium. In various different implementations, the storage device 930 can, for example, include a hard disk device, an optical disk device, or some other large capacity storage device.

The input/output device 940 provides input/output operations for the system 900. In one implementation, the input/output device 940 can include one or more of a network interface device, e.g., an Ethernet card, a serial communication device, e.g., and RS-232 port, and/or a wireless interface device, e.g., and 802.11 card. In another implementation, the input/output device can include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices 960.

The apparatus, methods, flow diagrams, and structure block diagrams described in this patent document can be implemented in computer processing systems including program code comprising program instructions that are executable by the computer processing system. Other implementations can also be used. Additionally, the flow diagrams and structure block diagrams described in this patent document, which describe particular methods and/or corresponding acts in support of steps and corresponding functions in support of disclosed structural means, can also be utilized to implement corresponding software structures and algorithms, and equivalents thereof.

This written description sets forth the best mode of the invention and provides examples to describe the invention and to enable a person of ordinary skill in the art to make and use the invention. This written description does not limit the invention to the precise terms set forth. Thus, while the invention has been described in detail with reference to the examples set forth above, those of ordinary skill in the art can effect alterations, modifications and variations to the examples without departing from the scope of the invention. 

What is claimed is:
 1. A method comprising: determining first keywords associated with a web page that a user can select for display on a client device; determining second keywords associated with advertisements that one or more computers can select for display on the client device; determining third keywords associated with sponsored video files that the one or more computers can select for display on the client device; identifying common keywords common to the first keywords, the second keywords, and the third keywords; generating common topics by ranking the common keywords; identifying candidate advertisements from the advertisements that the one or more computers can select for display on the client device and candidate sponsored video files from the sponsored video files that the one or more computers can select for display on the client device associated with the common topics based on keywords associated with the candidate advertisements and the candidate sponsored video files; generating an advertisement bundle including (i) one or more advertisements from among the candidate advertisements and (ii) one or more sponsored video files from among the candidate sponsored video files based at least in part on the common topics and on enhancing revenue and enhancing relevance for the one or more advertisements from among the candidate advertisements and for the one or more sponsored video files from among the candidate sponsored video files as a whole, wherein generating the advertisement bundle includes evaluating the one or more advertisements and the one or more sponsored video files and monitoring an aggregate click-through rate of the one or more advertisements and the sponsored video files, a click-to-play rate of the one or more advertisements and the sponsored video files, and an aggregate cost of the one or more advertisements and the sponsored video files; and providing the advertisement bundle to be displayed on the web page.
 2. The method of claim 1, wherein determining first keywords associated with a web page that a user can select for display on a client device comprises: receiving one or more of the first keywords from a content source associated with the web page.
 3. The method of claim 1, wherein determining first keywords associated with a web page that a user can select for display on a client device comprises: analyzing signals from a content source associated with the web page.
 4. The method of claim 1, wherein: the second keywords are determined by analyzing signals from the advertisements that the one or more computers can select for display on the client device; and the third keywords are determined by analyzing signals from the sponsored video files that the one or more computers can select for display on the client device.
 5. The method of claim 1, wherein the advertisement bundle is generated further based on the ranking of the common keywords.
 6. The method of claim 1, wherein generating an advertisement bundle comprises: combining the one or more advertisements and the one or more sponsored video files in the bundle.
 7. The method of claim 1, wherein generating an advertisement bundle comprises: combining one or more advertisements and one or more sponsored video files in an advertisement bundle based on evaluating the one or more advertisements and the one or more sponsored video files.
 8. The method of claim 1, further comprising: monitoring a consumption of one or more advertisements and one or more sponsored video files.
 9. The method of claim 7, wherein evaluating the one or more advertisements and the one or more sponsored video files comprises: monitoring past performance of the one or more advertisements and the one or more sponsored video files according to the one or more performance parameters.
 10. A system comprising: one or more computer devices; and a non-transitory computer-readable storage medium coupled to the one or more computer devices having instructions stored thereon which, when executed by the one or more computer devices, cause the one or more computer devices to perform operations comprising: determining first keywords associated with a web page that a user can select for display on a client device; determining second keywords associated with advertisements that one or more computers can select for display on the client device; determining third keywords associated with sponsored video files that the one or more computers can select for display on the client device; identifying common keywords common to the first keywords, the second keywords, and the third keywords; generating common topics by ranking the common keywords; identifying candidate advertisements from the advertisements that the one or more computers can select for display on the client device and candidate sponsored video files from the sponsored video files that the one or more computers can select for display on the client device associated with the common topics based on keywords associated with the candidate advertisements and the candidate sponsored video files; generating an advertisement bundle including (i) one or more advertisements from among the candidate advertisements and (ii) one or more sponsored video files from among the candidate sponsored video files based at least in part on the common topics and on enhancing revenue and enhancing relevance for the one or more advertisements from among the candidate advertisements and for the one or more sponsored video files from among the candidate sponsored video files as a whole, wherein generating the advertisement bundle includes evaluating the one or more advertisements and the one or more sponsored video files and monitoring an aggregate click-through rate of the one or more advertisements and the sponsored video files, a click-to-play rate of the one or more advertisements and the sponsored video files, and an aggregate cost of the one or more advertisements and the sponsored video files; and providing the advertisement bundle to be displayed on the web page.
 11. The system of claim 10, wherein determining first keywords associated with a web page that a user can select for display on a client device comprises: receiving one or more of the first keywords from a content source associated with the web page.
 12. The system of claim 10, wherein determining first keywords associated with a web page that a user can select for display on a client device comprises: analyzing signals from a content source associated with the web page.
 13. The system of claim 10, wherein: the second keywords are determined by analyzing signals from the advertisements that the one or more computers can select for display on the client device; and the third keywords are determined by analyzing signals from the sponsored video files that the one or more computers can select for display on the client device.
 14. The system of claim 10, wherein the advertisement bundle is generated further based on the ranking of the common keywords.
 15. The system of claim 10, wherein generating an advertisement bundle comprises: combining the one or more advertisements and the one or more sponsored video files in the bundle.
 16. The system of claim 10, wherein generating an advertisement bundle comprises: combining the one or more advertisements and the one or more sponsored video files in the advertisement bundle based on evaluating the one or more advertisements and the one or more sponsored video files.
 17. The system of claim 16, wherein evaluating the one or more advertisements and the one or more sponsored video files comprises: monitoring past performance of the one or more advertisements and the one or more sponsored video files according to the one or more performance parameters.
 18. The system of claim 10, wherein the operations further comprise: monitoring a consumption of the one or more advertisements and the one or more sponsored video files.
 19. A non-transitory computer storage medium encoded with a computer program, the computer program comprising instructions that when executed by one or more data processing apparatus cause the one or more data processing apparatus to perform operations comprising: determining first keywords associated with a web page that a user can select for display on a client device; determining second keywords associated with advertisements that one or more computers can select for display on the client device; determining third keywords associated with sponsored video files that the one or more computers can select for display on the client device; identifying common keywords common to the first keywords, the second keywords, and the third keywords; generating common topics by ranking the common keywords; identifying candidate advertisements from the advertisements that the one or more computers can select for display on the client device and candidate sponsored video files from the sponsored video files that the one or more computers can select for display on the client device associated with the common topics based on keywords associated with the candidate advertisements and the candidate sponsored video files; generating an advertisement bundle including (i) one or more advertisements from among the candidate advertisements and (ii) one or more sponsored video files from among the candidate sponsored video files based at least in part on the common topics and on enhancing revenue and enhancing relevance for the one or more advertisements from among the candidate advertisements and for the one or more sponsored video files from among the candidate sponsored video files as a whole, wherein generating the advertisement bundle includes evaluating the one or more advertisements and the one or more sponsored video files and monitoring an aggregate click-through rate of the one or more advertisements and the sponsored video files, a click-to-play rate of the one or more advertisements and the sponsored video files, and an aggregate cost of the one or more advertisements and the sponsored video files; and providing the advertisement bundle to be displayed on the web page.
 20. The medium of claim 19, wherein determining first keywords associated with a web page that a user can select for display on a client device comprises: receiving one or more of the first keywords from a content source associated with the web page. 